﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAO;
using System.Collections;
using DTO;
using BUS;

namespace QLKS
{
    public partial class frmLapPhieuThuePhong : Form
    {
        public frmLapPhieuThuePhong()
        {
            InitializeComponent();
        }

        private void frmLapPhieuThuePhong_Load(object sender, EventArgs e)
        {
           LoadListview();
           //Load loai phong len cbLoaiPhong
           DataTable dt1 = LoaiPhongDAO.LayLoaiPhong();
           foreach (DataRow dr1 in dt1.Rows)
           {
               DataTable dT = PhongDAO.PhongTheoMaLoaiPhong(int.Parse(dr1["MaLoaiPhong"].ToString()));
               if (dT.Rows.Count > 0)
               {
                   cbbLoaiPhong.Items.Add(dr1[0]);
               }
           }
           cbbLoaiPhong.Text = dt1.Rows[0].ItemArray[0].ToString();

           DataTable dt2 = PhongDAO.PhongTheoTen(cbbTenPhong.Text);
           txtMaPhong.Text = dt2.Rows[0].ItemArray[0].ToString();

           DataTable dt3 = LoaiPhongDAO.LoaiPhongTheoTen(cbbLoaiPhong.Text);
           txtDonGia.Text = dt3.Rows[0].ItemArray[3].ToString();

           dtpNgayBatDau.Text = DateTime.Now.ToShortDateString();
        }
        private void LoadListview()
        {
            listView1.Items.Clear();

            DataTable dt = KhachHangDAO.GetAll();

            foreach (DataRow dr in dt.Rows)
            {
                ListViewItem lv = new ListViewItem(dr["MaKhachHang"].ToString());

                for (int i = 1; i < dt.Columns.Count; i++)
                {
                    lv.SubItems.Add(dr[i].ToString());
                }
                listView1.Items.Add(lv);
            }
        }
        private int TimViTri(DataTable dt)
        {
            int k = 1;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (int.Parse(dt.Rows[i].ItemArray[0].ToString()) == k)
                    k++;
            }
            return k;
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnLapPhieuThue_Click(object sender, EventArgs e)
        {
            if (cbbTenPhong.SelectedIndex < 0)
            {
                MessageBox.Show("Tên phòng này không tồn tại", "Thông báo");
                return;
            }
            if (cbbLoaiPhong.SelectedIndex < 0)
            {
                MessageBox.Show("Loại phòng này không tồn tại", "Thông báo");
                return;
            }
            if (dtpNgayBatDau.Text == "")
            {
                MessageBox.Show("Vui lòng điền đủ thông tin");
                return;
            }
            else
            {
                DateTime dt1 = Convert.ToDateTime(dtpNgayBatDau.Text);
            }
            if (listView1.SelectedIndices.Count > 0)
            {
                DataTable dt5 = ThamSoDAO.GetAll();
                int sokhachtheodongia = int.Parse(dt5.Rows[0].ItemArray[0].ToString());

                DataTable dt3 = LoaiPhongDAO.LoaiPhongTheoTen(cbbLoaiPhong.Text);
                int sokhachtoida = int.Parse(dt3.Rows[0].ItemArray[2].ToString());
                int sokhach = listView1.SelectedItems.Count;
                if (sokhach > sokhachtoida)
                {
                    MessageBox.Show("Phòng chỉ dành cho " + sokhachtoida + " người");
                    return;
                }

                ArrayList arrLoaiKhach = new ArrayList();
                ArrayList arr = new ArrayList();
                foreach (ListViewItem item in listView1.SelectedItems)
                {
                    int ma = int.Parse(item.SubItems[0].Text);
                    //DataTable dt = KhachHangDAO.GetTheoMa(ma);
                    //int flag = 0;
                    //for (int i = 0; i < arrLoaiKhach.Count; i++)
                    //{
                    //    int a = int.Parse(arrLoaiKhach[i].ToString());
                    //    int b = int.Parse(dt.Rows[0].ItemArray[0].ToString());
                    //    if (a == b)
                    //    {
                    //        flag = 1;
                    //        break;
                    //    }
                    //}
                    //if (flag == 0)
                    //{
                    //    arrLoaiKhach.Add(dt.Rows[0].ItemArray[0].ToString());
                    //}
                    arr.Add(ma);
                }
                
                DateTime start_date = DateTime.Parse(dtpNgayBatDau.Text);

                DataTable dt1 = PhieuThuePhongDAO.Get();
                int mapt = TimViTri(dt1);
                PhieuThuePhongDTO pt = new PhieuThuePhongDTO();
                pt.MaPhieuThue = mapt;
                pt.MaPhong = int.Parse(txtMaPhong.Text);
                pt.NgayThuePhong = DateTime.Parse(dtpNgayBatDau.Text);
                if (MessageBox.Show("Bạn có muốn lập phiêu thuê phòng?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    PhieuThuePhongDAO.ThemPhieuThuePhong(pt);
                    PhongDAO.CapNhatTinhTrangPhong(pt.MaPhong, 0);
                }
                else
                {
                    return;
                }
                
                for (int j = 0; j < arr.Count; j++)
                {
                    DataTable dt2 = ChiTietPhieuThueDAO.GetAll();
                    int mactpt = TimViTri(dt2);
                    ChiTietPhieuThueDTO ctpt = new ChiTietPhieuThueDTO();
                    ctpt.MaChiTietPhieuThue = mactpt;
                    ctpt.MaPhieuThue = mapt;
                    ctpt.MaKhachHang = int.Parse(arr[j].ToString());
                    ChiTietPhieuThueDAO.ThemChiTietPhieuThue(ctpt);
                }
                MessageBox.Show("Lập phiếu thành công", "Thông báo");
            }
            else
            {
                MessageBox.Show("Chọn khách hàng trước khi lập phiếu", "Lập phiếu thuê phòng");
            }
        }
        private void cbbLoaiPhong_SelectedIndexChanged(object sender, EventArgs e)
        {
            cbbTenPhong.Items.Clear();

            //Load phong theo loai phong
            DataTable dt = PhongDAO.PhongTheoLoai(cbbLoaiPhong.Text);
            foreach (DataRow dr in dt.Rows)
            {
                cbbTenPhong.Items.Add(dr["TenPhong"].ToString());
            }
            cbbTenPhong.Text = dt.Rows[0].ItemArray[5].ToString();

            DataTable dt3 = LoaiPhongDAO.LoaiPhongTheoTen(cbbLoaiPhong.Text);
            txtDonGia.Text = dt3.Rows[0].ItemArray[3].ToString();

        }

        private void cbbTenPhong_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataTable dt2 = PhongDAO.PhongTheoTen(cbbTenPhong.Text);
            txtMaPhong.Text = dt2.Rows[0].ItemArray[0].ToString();
        }

        private void btnTaoTaiKhoan_Click(object sender, EventArgs e)
        {
            frmKhachHang frm = new frmKhachHang();
            frm.ShowDialog();
        }
    }
}
